//
//  main.m
//  14-copy和mutablecopy
//
//  Created by J on 16/2/26.
//  Copyright © 2016年 J. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        
        //只有不可变到不可变才会产生新对象
        
//        拷贝的原则:
//        内容一样
//        修改一方不会互相影响
        
//        只要是可变的 copy mutableCopy 都会产生新对象
//        不可变的copy返回自己 mutableCopy返回新对象
       
        NSString* str = @"12";
        NSString* strCopy = [str copy];//返回不可变对象
        NSMutableString* mStr =[str mutableCopy];//返回可变对象
        NSLog(@"%p %p %p",str,[str copy],[str mutableCopy]);//大家都不能改 前2个返回相同对象0x100001050 0x100001050 0x100303ab0
        
        NSMutableString* mutableString = [NSMutableString string];
        NSLog(@"%p %p %p",mStr,[mStr copy],[mStr mutableCopy]);//返回的都是不同对象0x100303ab0 0x7fff72d64140 0x100303ce0
        
        
    }
    return 0;
}
